package com.wicket.okrframework.integration.dto;

import com.wicket.okrframework.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;
import java.util.Objects;
import lombok.Data;

@Data
public class UnionAppDto extends BaseDto implements Serializable {

  /**
   * 应用ID:
   */
  @ApiModelProperty("应用ID")
  private String appId;

  /**
   * 应用编码:
   */
  @ApiModelProperty("应用编码")
  private String appCode;

  /**
   * 应用名称:
   */
  @ApiModelProperty("应用名称")
  private String appName;

  /**
   * 一句话介绍:
   */
  @ApiModelProperty("一句话介绍")
  private String appIntroduce;

  /**
   * 网址:
   */
  @ApiModelProperty("网址")
  private String website;

  /**
   * 应用框架logo图片:
   */
  @ApiModelProperty("应用框架logo图片")
  private String appLogo;

  /**
   * 主体生命周期:
   */
  @ApiModelProperty("主体生命周期")
  private String subjectLifeCycle;

  /**
   * 操作人就职记录ID:
   */
  @ApiModelProperty("操作人就职记录ID")
  private String operationInductionId;

  /**
   * 操作时间:
   */
  @ApiModelProperty("操作时间")
  private Date operateTime;

  @Override
  public boolean equals(Object o) {
    if (this == o) return true;
    if (o == null || getClass() != o.getClass()) return false;
    if (!super.equals(o)) return false;
    UnionAppDto that = (UnionAppDto) o;
    return (
      appId == that.appId &&
      appCode == that.appCode &&
      appName == that.appName &&
      appIntroduce == that.appIntroduce &&
      website == that.website &&
      appLogo == that.appLogo &&
      subjectLifeCycle == that.subjectLifeCycle &&
      operationInductionId == that.operationInductionId &&
      operateTime == that.operateTime
    );
  }

  @Override
  public int hashCode() {
    return Objects.hash(
      super.hashCode(),
      appId,
      appCode,
      appName,
      appIntroduce,
      website,
      appLogo,
      subjectLifeCycle,
      operationInductionId,
      operateTime
    );
  }

}
